//
//  SwitchStudy.swift
//  Swift3.0_Study
//
//  Created by chengfeng on 2016/9/27.
//  Copyright © 2016年 zhaochengfeng. All rights reserved.
//

import Cocoa

class SwitchStudy: NSObject {
    func start() -> Void {
        //Swift中的 switch 非常强大
        
        //switch语句:超过2个以上条件判断的场合. 比如
        //范围匹配:如根据室外温度来自动调节室内温度的空调
        let temp = 50
        
        switch temp {
        case 35...40:
            print("天气非常炎热，强力制冷模式启动")
        case 25...34:
            print("气温不算太热，空调制冷模式启动")
        case 19...24:
            print("除湿模式")
        case 0...18:
            print("制暖模式")
        default:
            print("室外已经超过本空调的控制范围！")
        }
        
        //元组匹配(选修):如某坐标(含x和y两个变量)所在象限判断.
        let 坐标1 = self.getTuple(x: 0, y: 2)
        
        switch 坐标1 {
        case (0, 0):
            print("原点")
        case (_, 0):
            print("坐标在X轴上")
        case (0, _):
            print("坐标在Y轴上")
        case (-2...2, -2...2):
            print("坐标在2*2范围内")
        default:
            break
        }
        
        //值绑定:一个case里可以绑定临时变量,以便在执行语句中使用.
        //把坐标的值显示出来
        let 坐标2 = self.getTuple(x: 13, y: 12)
        
        switch 坐标2 {
        case (0, 0):
            print("原点")
        case (let x, 0):
            print("坐标在X轴上:", x)
        case (0, let y):
            print("坐标在Y轴上:", y)
        case (let x, let y):
            print(x, y)
        }

        //值绑定的where再匹配:
        let 坐标3 = self.getTuple(x: -1.5, y: 11.5)
        
        switch 坐标3 {
        case (let x, let y) where x == y:
            print("坐标在45度对角线")
        case (let x, let y) where x == -y:
            print("坐标在135度对角线")
        default:
            print("坐标不在任何对角线上")
        }
    }
    
    //获取一个坐标的函数
    func getTuple(x: Float, y: Float) -> (Float, Float) {
        return (x, y);
    }
}
